package com.lv.fast.service;

import com.lv.fast.DTO.SysMenuDTO;
import org.springframework.transaction.annotation.Transactional;

import java.util.LinkedHashSet;

/**
 * @Description
 * @Author jie.lv
 */
public interface SysMenuService {

    /**
     * 根据角色Id获取菜单列表
     * @param roleId 角色Id
     * @return 菜单列表
     */
    LinkedHashSet<SysMenuDTO> listByRoleId(String roleId);

    /**
     * 根据上级Id获取角色列表
     * @param parentId 上级Id
     * @return 菜单列表
     */
    LinkedHashSet<SysMenuDTO> listByParentId(String parentId);

    /**
     * 获取所有菜单
     * @return 菜单列表
     */
    LinkedHashSet<SysMenuDTO> listAll();

    /**
     * 获取菜单详情
     * @param id 菜单id
     * @return 菜单对象
     */
    SysMenuDTO get(String id);

    /**
     * 新增菜单
     * @param menuDTO 菜单对象
     * @return 是否成功
     */
    boolean add(SysMenuDTO menuDTO);

    /**
     * 修改菜单信息
     * @param menuDTO 菜单对象
     * @return 是否成功
     */
    boolean update(SysMenuDTO menuDTO);

    /**
     * 删除菜单
     * @param id 菜单id
     * @return 是否成功
     */
    @Transactional(rollbackFor = Throwable.class)
    boolean delete(String id);
}
